
/** --- 表单输入正则 Start --- **/

/**
 * 纯数字
 * @param value 值
 */
export function onlyNumberReg(value) {
  if (!value) return value;

  let reg = /[^\d]/g;
  return value.replace(reg, '');
}

/**
 * 数字+字母
 * @param value 值
 */
export function numAndLetterReg(value) {
  if (!value) return value;
  let reg = /[^A-Za-z0-9]/g;
  return value.replace(reg, '');
}

/**
 * 表单输入正则
 * 只能输入中文
 * @param value 值
 */
export function onlyCnReg(value) {
  let reg = /[^\u4e00-\u9fa5]/g
  return value.replace(reg, '');
}

/**
 * 表单输入正则
 * 数字、字母、符号（除去汉字）
 * @param value 值
 */
export function excludeCnReg(value) {
  let reg = /[\u4e00-\u9fa5|\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5]/g
  return value.replace(reg, '');
}

/**
 * 表单输入正则
 * 可输入数字、小数点（必须数字开头）
 * @param value 值
 * @param decimal 保留位数
 */
export function floatNumberReg(value, decimal = 2) {
  if (!value) return value;

  let numReg = /^\d+(\.\d*)?$/g;
  let decimalReg = new RegExp('^\\d*(\\.?\\d{0,' + decimal + '})', 'g');
  let otherReg = /[^\d]/g;
  if (numReg.test(value)) {
    return value.match(decimalReg)[0];
  } else {
    return value.replace(otherReg, '');
  }
}

/**
 * 表单输入正则
 * 去除空白字符、回车符、换行符
 * @param value 值
 */
 export function removeBlankReg(value) {
  let reg = /[\r\n\s]/g;
  return value.replace(reg, '');
}

/**
 * 表单输入正则
 * 身份证号码 只能输入数字和大写字母X
 * @param value 值
 */
export function limitCardNoReg(value) {
  let reg = /[^(\d|X)]/g
  return value.replace(reg, '');
}

/** --- 表单输入正则 End --- **/


/** --- 格式化数据正则 Start --- **/

/**
 * 格式化手机号
 */
export function formatTelReg(value) {
  if (!value) return '';

  let reg = /^(.{3})(.*)(.{4})$/g;
  return value.replace(reg, '$1 $2 $3');
}

/**
 * 格式化营业执照号
 */
 export function formatLicenseNoReg(value) {
  if (!value) return '';

  let reg = /(.{5})/g;
  return value.replace(reg, '$1 ');
}

/** --- 格式化数据正则 End --- **/

